package com.yifan.linear.Linkedlist;

/**
 * @Author YIFan
 * @Date 2020/6/7 15:49
 * @Version 1.0
 */
// 环形链表
public class CircleNode {

    // 节点内容
    private int data;
    // 下一个节点
    private CircleNode next = this;

    public CircleNode(int data) {
        this.data = data;
    }

    // 获取下一个节点
    public CircleNode next(){
        return this.next;
    }

    // 获取节点中的数据
    public int getData() {
       return this.data;
    }

    // 判断节点是否为最后一个节点
    public boolean isLast(){
        return next == null;
    }


    // 删除当前节点的下一个节点
    public void removeNext(){
        // 只能删除当前节点的下一个节点 获取到删除的下一个节点
        CircleNode node = next.next ;
        // 把下下一个节点设置为当前节点的下一个节点
        this.next = node;
    }

    // 插入一个节点
    public void afterNode(CircleNode node){
        // 取出当前节点的下一个节点 作为  下下一个节点
        CircleNode nextNext = this.next;
        // 把插入的节点 赋值给当前节点的下一个节点
        this.next = node;
        //把下下个节点设置为新节点的下一个节点
        node.next = nextNext;
    }
}
